<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
 <head>
  <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  <title>处理 XForms</title>
<link media="all" rel="stylesheet" type="text/css" href="styles/03e73060321a0a848018724a6c83de7f-theme-base.css" />
<link media="all" rel="stylesheet" type="text/css" href="styles/03e73060321a0a848018724a6c83de7f-theme-medium.css" />

 </head>
 <body class="docs"><div class="navbar navbar-fixed-top">
  <div class="navbar-inner clearfix">
    <ul class="nav" style="width: 100%">
      <li style="float: left;"><a href="features.sessions.html">« 会话</a></li>
      <li style="float: right;"><a href="features.file-upload.html">文件上传处理 »</a></li>
    </ul>
  </div>
</div>
<div id="breadcrumbs" class="clearfix">
  <ul class="breadcrumbs-container">
    <li><a href="index.html">PHP Manual</a></li>
    <li><a href="features.html">特点</a></li>
    <li>处理 XForms</li>
  </ul>
</div>
<div id="layout">
  <div id="layout-content"><div id="features.xforms" class="chapter">
 <h1>处理 XForms</h1>

 <p class="para">
  <a href="http://www.w3.org/MarkUp/Forms/" class="link external">&raquo;&nbsp;XForms</a> 定义了传统 web
  表单的变种，可以用于更广泛的平台和浏览器，甚至非传统的媒体（例如 PDF 文档）。
 </p>
 <p class="para">
  XFroms 的第一个关键区别是表单怎样发送到客户端。<a href="http://www.w3.org/MarkUp/Forms/2003/xforms-for-html-authors.html" class="link external">&raquo;&nbsp;XForms for HTML Authors</a>
  包含如何创建 XForms 的详细说明。处于本教程的目的，将只看简单的示例。
 </p>
 <div class="example" id="example-451">
  <p><strong>示例 #1 简单的 XForms 搜索表单</strong></p>
  <div class="example-contents">
<div class="htmlcode"><pre class="htmlcode">&lt;h:html xmlns:h=&quot;http://www.w3.org/1999/xhtml&quot;
        xmlns=&quot;http://www.w3.org/2002/xforms&quot;&gt;
&lt;h:head&gt;
 &lt;h:title&gt;Search&lt;/h:title&gt;
 &lt;model&gt;
  &lt;submission action=&quot;http://example.com/search&quot;
              method=&quot;post&quot; id=&quot;s&quot;/&gt;
 &lt;/model&gt;
&lt;/h:head&gt;
&lt;h:body&gt;
 &lt;h:p&gt;
  &lt;input ref=&quot;q&quot;&gt;&lt;label&gt;Find&lt;/label&gt;&lt;/input&gt;
  &lt;submit submission=&quot;s&quot;&gt;&lt;label&gt;Go&lt;/label&gt;&lt;/submit&gt;
 &lt;/h:p&gt;
&lt;/h:body&gt;
&lt;/h:html&gt;</pre>
</div>
  </div>

 </div>
 <p class="para">
  上面的表单显示一个文本输入框（名为
  <code class="parameter">q</code>）和一个提交按钮。当点击提交按钮，表单将被发送到
  <code class="literal">action</code> 所指示的页面。
 </p>
 <p class="para">
  从 web 应用程序的角度来看，这就是看起来不同的地方。在普通的
  HTML 表单中，数据将作为
  <code class="literal">application/x-www-form-urlencoded</code> 发送，在
  XForms 的世界中，该信息是以 <abbr title="eXtensible Markup Language">XML</abbr> 格式数据发送的。
 </p>
 <p class="para">
  如果选择使用 XForms，这种情况下，肯定期望数据为 <abbr title="eXtensible Markup Language">XML</abbr>，查看
  <var class="varname">$HTTP_RAW_POST_DATA</var> 将会找到包含由浏览器生成的
  <abbr title="eXtensible Markup Language">XML</abbr> 文档，可以将其传递给喜欢的 <abbr title="eXtensible Stylesheet Language Transformations">XSLT</abbr> 引擎或者文档解析器。
 </p>
 <p class="para">
  如果对格式不感兴趣，只想让数据加载到传统的 <var class="varname"><a href="reserved.variables.post.html" class="classname">$_POST</a></var>
  变量中，只要将 <code class="parameter">method</code> 属性修改为
  <em class="emphasis">urlencoded-post</em> 就可以指示客户端浏览器将其作为
  <code class="literal">application/x-www-form-urlencoded</code> 发送。
 </p>
 <div class="example" id="example-452">
  <p><strong>示例 #2 使用 XForm 来填充 <var class="varname"><a href="reserved.variables.post.html" class="classname">$_POST</a></var></strong></p>
  <div class="example-contents">
<div class="htmlcode"><pre class="htmlcode">&lt;h:html xmlns:h=&quot;http://www.w3.org/1999/xhtml&quot;
        xmlns=&quot;http://www.w3.org/2002/xforms&quot;&gt;
&lt;h:head&gt;
 &lt;h:title&gt;Search&lt;/h:title&gt;
 &lt;model&gt;
  &lt;submission action=&quot;http://example.com/search&quot;
              method=&quot;urlencoded-post&quot; id=&quot;s&quot;/&gt;
 &lt;/model&gt;
&lt;/h:head&gt;
&lt;h:body&gt;
 &lt;h:p&gt;
  &lt;input ref=&quot;q&quot;&gt;&lt;label&gt;Find&lt;/label&gt;&lt;/input&gt;
  &lt;submit submission=&quot;s&quot;&gt;&lt;label&gt;Go&lt;/label&gt;&lt;/submit&gt;
 &lt;/h:p&gt;
&lt;/h:body&gt;
&lt;/h:html&gt;</pre>
</div>
  </div>

 </div>
 <blockquote class="note"><p><strong class="note">注意</strong>: 
  <span class="simpara">
   在编写本文档时，许多浏览器还不支持 XForms。如果上述例子失败，请检查自己的浏览器版本。
  </span>
 </p></blockquote>
</div>
</div></div></body></html>